.TH SGATHER "1" "October 2013" "sgather 1.0" "ZIH Slurm extensions"

.SH "NAME"
sgather \- transmit a file from the nodes allocated to a Slurm job.

.SH "SYNOPSIS"
\fBsgather\fR [\-rikCFpvV] SOURCE DEST

.SH "DESCRIPTION"
\fBsgather\fR is used to transmit a file from all nodes allocated to the currently active Slurm job. This command should only be executed from within a Slurm batch job or within the shell spawned after a Slurm job's resource allocation. \fBSOURCE\fR should be the fully qualified pathname for the file copy to be fetched from each node. \fBSOURCE\fR should be on a file system local to that node. \fBDEST\fR is the name of the file to be created on the current node where the source node name will be appended. Note that parallel file systems \fImay\fR provide better performance than \fBsgather\fR can provide, although performance will vary by file size, degree of parallelism, and network type.

.SH "OPTIONS"
.TP
\fB\-C\fR, \fB\-\-compress\fR
Compress the file being transmitted.
.TP
\fB\-f\fR, \fB\-\-force
Ignore nonexistent source file.
.TP
\fB\-F\fR \fInumber\fR, \fB\-\-fanout\fR=\fInumber\fR
Specify the fanout of messages used for file transfer.
Maximum value is currently eight.
.TP
\fB\-k\fR, \fB\-\-keep\fR
Do not remove the source file after transmission.
.TP
\fB\-p\fR, \fB\-\-preserve\fR
Preserves modification times, access times, and modes from the original file.
.TP
\fB\-r\fR, \fB\-\-recursive\fR
Copy directories recursively.
.TP
\fB\-t\fB \fIseconds\fR, \fB\-\-timeout\fR=\fIseconds\fR
Specify the message timeout in seconds.
The default value is 60 seconds.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Provide detailed event logging through program execution.
.TP
\fB\-V\fR, \fB\-\-version\fR
Print version information and exit.

.SH "ENVIRONMENT VARIABLES"
.PP
Some \fBsgather\fR options may be set via environment variables.
These environment variables, along with their corresponding options,
are listed below. (Note: Command line options will always override
these settings.)
.TP 20
\fBSGATHER_COMPRESS\fR
\fB\-C, \-\-compress\fR
.TP
\fBSGATHER_FANOUT\fR
\fB\-F\fB \fInumber\fR, \fB\-\-fanout\fR=\fInumber\fR
.TP
\fBSGATHER_FORCE\fR
\fB\-f, \-\-force\fR
.TP
\fBSGATHER_KEEP\fR
\fB\-k, \-\-keep\fR
.TP
\fBSGATHER_PRESERVE\fR
\fB\-p, \-\-preserve\fR
.TP
\fBSGATHER_RECURSIVE\fR
\fB\-r, \-\-recursive\fR
.TP
\fBSGATHER_TIMEOUT\fR
\fB\-t\fB \fIseconds\fR, \fB\-\-timeout\fR=\fIseconds\fR

.SH "EXAMPLE"

Using a batch script, execute a program that produces \fB/tmp/my.data\fR on all nodes allocated to the Slurm job and then transmit these files to the batch node.

.nf
> cat my.job
#!/bin/bash
srun my.prog --output /tmp/my.data
sgather /tmp/my.data all_data

> sbatch \-\-nodes=8 my.job
srun: jobid 12345 submitted
.fi

.SH "COPYING"
Copyright (C) 2013-2013 ZIH, TU Dresden, Federal Republic of Germany.

.SH "SEE ALSO"
\fBsbcast\fR(1)
